Lifecycle methods are available to class based components:
- constructor
 - static getDerivedStateFromProps
 - render()
 - componentDidMount
 - getSnapshotBeforeUpdate
 - shouldComponentUpdate
 - componentDidUpdate -> after the component updates
 - componentWillUnmount() → cleanup when the component is unmounting
 - componentDidCatch